package com.shujia.wyh.day11.ketang;

/*
      问题：当父类中没有无参构造方法的时候，怎么办呢？会发生什么情况你呢？
        1、使用super关键字，带参数的形式去访问父类中带参数的构造方法
        2、使用this关键字调用本类中的其他构造方法
            前提:本类中其他构造必须也得先进行访问父类的构造方法
            使用this的目的就是间接地去调用super关键完成父类的初始化


      注意事项：
        1、super(...)和this(...)必须出现在构造方法中的第一句话，表明要对父类进行初始化
        2、在同一个构造方法中，不能多次对父类进行初始化
            java中每一个类都只能进行初始化一次


      理解：
        1、要想进行子类初始化，就必须先进行父类的初始化
        2、初始化就是调用构造方法的过程
        3、继承关系子类中构造方法的第一句话默认隐含了一个super(),调用父类的无参构造方法
        4、java中每一个类都只能进行初始化一次




 */

class Father6 {
    int age;

    public Father6() {
        System.out.println("这是父类中无参构造方法");
    }

    public Father6(String s) {
        System.out.println("这是父类中带参数的构造方法，参数是：" + s);
    }
}

class Son6 extends Father6 {
    public Son6() {
//        super();
//        super("hello");
        this("你好");
//        super();
        System.out.println("这是子类中的无参构造方法");
    }

    public Son6(String s) {
//        super(s);
//        super();
//        super("hello");
        //super()
        System.out.println("这是子类中带参数构造方法，参数是：" + s);
//        super("hello");
    }

    public void show(){
        System.out.println("好好学习，天天向上");
    }

}
public class ExtendsDemo8 {
    public static void main(String[] args) {
        Son6 son6 = new Son6();
        son6.show();
    }
}
